#include "gtkbuildable.h"
#include "gtkbox.h"
#include "gtkcellrenderertext.h"
-#include "gtkcssprovider.h"
#include "gtkentry.h"
#include "gtksearchentry.h"
#include "gtkgrid.h"
GtkFontFilterFunc filter_func;
gpointer filter_data;
GDestroyNotify filter_data_destroy;
-
- GtkCssProvider *provider;
};
/* This is the initial fixed height and the top padding of the preview entry */
return TRUE;
}
+static void
+gtk_font_chooser_widget_update_preview_attributes (GtkFontChooserWidget *fontchooser)
+{
+ GtkFontChooserWidgetPrivate *priv;
+ PangoAttrList *attrs;
+
+ priv = fontchooser->priv;
+
+ attrs = pango_attr_list_new ();
+
+ /* Prevent font fallback */
+ pango_attr_list_insert (attrs, pango_attr_fallback_new (FALSE));
+
+ /* Force current font */
+ pango_attr_list_insert (attrs, pango_attr_font_desc_new (priv->font_desc));
+
+ gtk_entry_set_attributes (GTK_ENTRY (priv->preview), attrs);
+ pango_attr_list_unref (attrs);
+}
+
static void
row_inserted_cb (GtkTreeModel *model,
GtkTreePath *path,
gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser)
{
GtkFontChooserWidgetPrivate *priv;
- PangoAttrList *attrs;
fontchooser->priv = gtk_font_chooser_widget_get_instance_private (fontchooser);
priv = fontchooser->priv;
gtk_widget_init_template (GTK_WIDGET (fontchooser));
- priv->provider = gtk_css_provider_new ();
- gtk_style_context_add_provider (gtk_widget_get_style_context (priv->preview),
- GTK_STYLE_PROVIDER (priv->provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
-
/* Default preview string */
priv->preview_text = g_strdup (pango_language_get_sample_string (NULL));
priv->show_preview_entry = TRUE;
/* Set default preview text */
gtk_entry_set_text (GTK_ENTRY (priv->preview), priv->preview_text);
- /* Prevent font fallback */
- attrs = pango_attr_list_new ();
- pango_attr_list_insert (attrs, pango_attr_fallback_new (FALSE));
- gtk_entry_set_attributes (GTK_ENTRY (priv->preview), attrs);
- pango_attr_list_unref (attrs);
+ gtk_font_chooser_widget_update_preview_attributes (fontchooser);
gtk_widget_add_events (priv->preview, GDK_SCROLL_MASK);
if (priv->filter_data_destroy)
priv->filter_data_destroy (priv->filter_data);
- g_object_unref (priv->provider);
-
G_OBJECT_CLASS (gtk_font_chooser_widget_parent_class)->finalize (object);
}
{
GtkFontChooserWidgetPrivate *priv = fontchooser->priv;
PangoFontMask mask;
- gchar *font, *data;
g_assert (font_desc != NULL);
/* iter may be NULL if the font doesn't exist on the list */
gtk_font_chooser_widget_update_marks (fontchooser);
}
- font = pango_font_description_to_string (priv->font_desc);
- data = g_strconcat ("* { font: ", font, "; }", NULL);
- gtk_css_provider_load_from_data (priv->provider, data, -1, NULL);
- g_free (data);
- g_free (font);
+ gtk_font_chooser_widget_update_preview_attributes (fontchooser);
pango_font_description_free (font_desc); /* adopted */